package edu.columbia.plt.visage.interfaces;

import java.util.Collection;

import edu.columbia.plt.visage.Agent;

public interface IAgentDriver {

	// gets func
	public abstract ICell getCell();

	public abstract Collection<Agent> produce(int number, String type); // produce <number> agents with type

	public abstract Collection<Agent> reproduce(int number); // reproduce <number> agents

	public abstract void die(); // kill itself ??

	public abstract void move(); // move in the direction with certain speed

	public abstract void moverandom();

	// set agent position
	public abstract void setPosition(double x, double y);

	// kill agents
	public abstract void kill(Collection<Agent> agents);

	public abstract void run();

	public abstract void logic(); // do logic inside tell

}